package com.mashibing.algorithm.class01;

public class Code01_PrintBinary {

	public static void print(int num) {
		for (int i = 31; i >= 0; i--) {
			System.out.print((num & (1 << i)) == 0 ? "0" : "1");
		}
		System.out.println();
	}

	public static void main(String[] args) {
		//******************打印出num的二进制表示*********************//
		// 32位
//		int num = 4;
//
//		print(num);
//
//

//		int test = -1;
//		int test2 = ~test;
//		print(0);
//
//		print(Integer.MIN_VALUE);
//		print(test);
//		print(test2);
//		print(Integer.MAX_VALUE);


//		print(test<<1);
//		print(test<<2);
//		print(test<<8);
//
//
//		int a = Integer.MAX_VALUE;
//		System.out.println(a);

//		print(-1);
//		int a = Integer.MIN_VALUE;
//		print(a);

//		int b = 123823138;
//		int c = ~b;
//		print(b);
//		print(c);

//		print(-5);

//		System.out.println(Integer.MIN_VALUE);
//		System.out.println(Integer.MAX_VALUE);

//		int a = 12319283;
//		int b = 3819283;
//		print(a);
//		print(b);
//		System.out.println("=============");
//		print(a | b);
//		print(a & b);
//		print(a ^ b);

//		int a = Integer.MIN_VALUE;
//		print(a);
//		//右移 -> 符号位补最左侧
//		print(a >> 1);
//		print(a >>> 1);
//
		int c = -5;
		//相反数转化的一种写法
		int d = ~c+1 ;

		print(c);
		print(d);
		System.out.println(c);
		System.out.println(d);
		//最小负数的相反数等于自己，因为负数的绝对值大于正数

	}

}
